module.exports = {
    publicPath: './', //输出路径在当前目录下
    //1.配置代码抽离-把那些体积比较大的，在生产时抽离出去，不要打包打js里。怎么判断生产环境?node属性process.env.NODE_ENV === 'production'
    chainWebpack: config => {
        //blog.csdn.net/weixin_43638968/article/details/109093199
        //判断生产环境-正常走main_prod.js需要代码抽离
        config.when(process.env.NODE_ENV === 'production', config => {

                config.entry('app').clear().add('./src/main_prod.js')
                config.set('externals', {
                        //抽离的配置项-键是包名，值是别名
                        'vue': 'Vue',
                        'echarts': 'echarts',
                        'vue-quill-editor': 'VueQuillEditor',
                        'element-ui': 'ELEMENT', //注意ELEMENT这个名字，不能叫其它的。因为cdn链接对外暴露的是这个名字
                    })
                    // config.plugin('html').tap(args => {
                    //     args[0].isProd = true
                    //     return args
                    // })
            })
            //判断开发环境-正常走main.js不用做其它操作
        config.when(process.env.NODE_ENV === 'development', config => {

            config.entry('app').clear().add('./src/main.js')
                // config.plugin('html').tap(args => {
                //     args[0].isProd = true
                //     return args
                // })
        })

    },
    productionSourceMap: false, //把镜像文件sorcemap给去除
    //开发环境-配置代理跨域
    devServer: {
        open: true, // 自动启动浏览器
        host: '0.0.0.0', // localhost
        hotOnly: true, // 热更新
        overlay: {
            //  当出现编译器错误或警告时，在浏览器中显示全屏覆盖层
            warnings: false,
            errors: true
        },
        proxy: {
            //配置跨域-只能用于开发环境,上线环境不起作用。！！！注意target一定要配置，否则会有报错
            '/api': {
                target: 'http://localhost:6060',
                // ws: true, // 是否启用websockets
                changOrigin: true, // 开启代理，在本地创建一个虚拟服务端
                pathRewrite: {
                    '^/api': ''
                }
            }
        }
    },
}